1. Field
The invention relates generally to virtualization techniques within a communications network, and more specifically to inspecting and manipulating an at-rest virtual machine (VM).
2. Background
Systems using virtualization technology where a communications network system includes one or more virtual machine have been previously described. For example, U.S. application Ser. No. 11/867,456, filed Oct. 4, 2007, and assigned to the assignee of the present invention, described methods for collaboration amongst nodes within a communications network, where some of the nodes were virtual machines. U.S. application Ser. No. 11/867,500, filed Oct. 4, 2007, and assigned to the assignee of the present invention, described methods for the insertion of a driver directly into a virtual machine executable file. U.S. application Ser. No. 12/013,314, filed Jan. 11, 2008, and assigned to the assignee of the present invention, described methods for communications between entities within a virtual communications network, some of which entities were virtual machines, and to tracking the activities of those virtual machines. U.S. application Ser. No. 12/013,304, filed Jan. 11, 2008, and assigned to the assignee of the present invention, described methods by which a virtual machine could determine information about and identify a host machine. All three of the aforementioned prior patent applications are hereby incorporated by reference into the present patent application in their entireties.
In a typical system utilizing virtualization technology, management of a virtual machine requires that the virtual machine actually be online. The ability to manipulate an at rest (offline) VM was limited. For example, in U.S. patent applications Ser. No. 11/867,500, filed Oct. 4, 2007 a method for direct insertion of a virtual machine driver was described, but the method was limited to altering the flat file of the VM and required that the driver to be inserted be compressible into the same size memory as a driver being replaced.
In many circumstances, the ability to manage a VM is critical to the proper functioning of the VM or the overall system. For example, one or more VM's within the system may need to have a new software package installed, or an existing software package within the VM may need to be patched or otherwise updated.
A need therefore exists for a more robust capability to manage virtual machines within a communications network. In particular, a method is needed that enables inspection and/or alteration of files associated with a VM, where the method is operable whether or not the VM is online. A further need exists to maintain knowledge of the current configuration of a VM within a network and to control that configuration at any time, whether or not the VM is online. This would facilitate performance of periodic inspections of multiple virtual machines associated with a network and enable a network administrator to prevent VM configuration drift (e.g., unauthorized modifications, whether deliberate or accidental, to a VM configuration). Furthermore, a need exists for methods to insert software into a file directory of an offline VM, for installation and operation upon the next startup of the VM, and to delete software from an offline VM. Finally, a need exists for methods to implement policy management on all VM's within a network, whether or not some VM's are offline.